//
//  ASTool.h
//  FoodEnum
//
//  Created by xunruiIOS on 2020/7/20.
//  Copyright © 2020 xunruiIos. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <Photos/PHAsset.h>
#import <Photos/Photos.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger) {
    FEBtnImageTitleType_ImageLeft,                      //图片在左文字右
    FEBtnImageTitleType_ImagRight,                      //图片又文字左
    FEBtnImageTitleType_ImageTop,                       //图片上文字下
    FEBtnImageTitleType_ImageBottom,                    //图片下文字上
}FEBtnImageTitleType;              //设置button按钮文字和图片的布局样式


@interface ASTool : NSObject

//改变按钮的布局样式
+ (void)changeBtnStyleWithType:(FEBtnImageTitleType)type distance:(CGFloat)distance andBtn:(UIButton *)btn;

/**
获取与服务端时间同步后的本地时间
*/
+ (NSInteger)createLoadNetTime;

/// 获取系统当前时间
/// @param formatStr YYYY-MM-dd HH:mm:ss
+(NSString*)getCurrentTimesFormat:(NSString *)formatStr;

//数组中的随机色值
+ (UIColor *)backgroundRandomColor;

/**
 将某个时间转化成 时间戳
 */
+ (NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format;

/**
计算两个时间戳相差多少分钟
*/
+ (int)compareTwoTime:(NSInteger)time1 time2:(NSInteger)time2;

/**
 2  * @method
 3  *
 4  * @brief 获取两个日期之间分钟
 5  * @param fromDate       起始日期
 6  * @param toDate         终止日期
 7  * @return    总分钟
 8  */
+ (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate;

/// 返回一个颜色渐变图片
/// @param startColor 开始色
/// @param endColor 结束的颜色
/// @param ifVertical 是否纵向渐变
+(UIImage *)colorGradientWithStartColor:(UIColor *)startColor endColor:(UIColor *)endColor ifVertical:(BOOL)ifVertical imageSize:(CGSize)imageSize;

/// 计算lab的行数
/// @param text text
/// @param font 字体
/// @param width 宽度
+(NSArray *)getSeparatedLinesFromLabelText:(NSString *)text font:(UIFont *)font width:(CGFloat)width;

/**
 根据高度求宽度
 @param text 计算的内容
 @param height 计算的高度
 @param font font字体大小
 @return 返回Label的宽度
 */
+ (CGFloat)getWidthWithText:(NSString *)text height:(CGFloat)height font:(CGFloat)font;

/**
 根据宽度度求高度
 @param text 计算的内容
 @param width 计算的宽度
 @param font font字体大小
 @return 返回Label的宽度
 */
+ (CGFloat)getHeightWithText:(NSString *)text width:(CGFloat)width font:(UIFont *)font;

/**
 计算文本高度
 
 @param str         文本内容
 @param width       lab宽度
 @param lineSpacing 行间距(没有行间距就传0)
 @param font        文本字体大小
 
 @return 文本高度
 */
+(CGFloat)getTextHeightWithStr:(NSString *)str
                     withWidth:(CGFloat)width
               withLineSpacing:(CGFloat)lineSpacing
                      withFont:(CGFloat)font;

/// 改变一个lab的行间距
/// @param label label description
/// @param space space description
+ (void)changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space;
/*
 自定义方法：获取缓存大小
 */
+ (float) getCacheSize;

// 清除缓存
+ (void)clearFile;

// 计算 单个文件的大小
+ ( long long ) fileSizeAtPath:( NSString *) filePath;

/// 获取app版本号
+ (NSString *)versionNumber;

/**
 *  手机型号
 *
 *  @return e.g. iPhone  https://www.theiphonewiki.com/wiki/Models  设备参考资料
 */
+(NSString *)phoneModel;


/**
 *  手机系统版本
 *
 *  @return e.g. 8.0
 */
+(NSString *)phoneVersion;

/**
*  获取设备标示UUDI
*/
+(NSString *)phoneUUID;

/**
*  获取设备网络状态
*/
+ (NSString *)networkingStatesFromStatebar;

/// 网络是否是wifi
+(BOOL)netWorkIsWifi;

//设置图片高斯模糊
+ (UIImage *)tg_blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur;

//获取 bundle version版本号
+(NSString*) getLocalAppVersion;

//获取BundleID
+(NSString*) getBundleID;

// 获取app的名字
+(NSString*) getAppName;

/** 获取scrollView的长截图*/
+ (UIImage *)getLongImage:(UITableView *)tableView;

///随机字符串 - 生成指定长度的字符串
+(NSString *)randomStringWithLength:(NSInteger)len;

/// 压缩图片
+(UIImage *)zipNSDataWithImage:(UIImage *)sourceImage;

///压缩图片
+ (UIImage *)compressImage:(UIImage *)image toByte:(NSUInteger)maxLength;

+ (UIImage *)imageWithMaxSide:(CGFloat)length sourceImage:(UIImage *)image;

/// 视频压缩后存储的路径
+ (NSString *)creatSandBoxFilePathIfNoExist;

/**
 获取视频略缩图
 */
+ (UIImage *)imageURL:(PHAsset *)phAsset targetSize:(CGSize)targetSize;

///删除指定地址目录下的文件
+ (void)removeDocumentWithFilePath:(NSString*)filePath;

///根据颜色生成一张图片
+(UIImage*)createImageWithColor:(UIColor*)color;

/*
    txt:label或button的title
    font:字体大小
    size:允许最大size
 */
+(CGSize)boundingRectWithSize:(NSString*)txt Font:(UIFont*) font Size:(CGSize)size;

///计算lab高度
+ (CGFloat)getterSpaceLabelHeight:(NSString*)string withLineSpacing:(CGFloat)lineSpacing withFont:(UIFont*)font withWidth:(CGFloat)width;

//相册新建文件夹
+ (void)createFolder:(NSString * _Nullable)videoPath mainImage:(UIImage * _Nullable)mainImage name:(NSString *)name ifPush:(BOOL)ifPush;

//判断相册是否有新建文件夹
+ (BOOL)isExistFolder:(NSString *)folderName;

///app 名字
+(NSString *)appName;

///判断用户是否开启相册访问权限
+(void)canSeePhotoCompletion:(void (^_Nullable)(BOOL isSucceed, PHAuthorizationStatus photoType))completion;

///判断当前展示的页面是不是自己
+(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController;

//设置viwe锚点
+ (void)hf_setAnchorPoint:(CGPoint)anchorPoint supView:(UIView *)subV;

///添加友盟统计
+(void)addUMTongJiKey:(NSString *)key subKey:(NSString *)subKey titleStr:(NSString *)titleStr;


/// 设置view半边圆角
/// @param corners 圆角类型
/// @param cornerRadii 圆角尺寸
/// @param subView subView
+(void)addRoundRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii subView:(UIView *)subView;
@end

NS_ASSUME_NONNULL_END
